#!/bin/sh

# this script simply sleeps a random number of seconds
# up to MAX_DELAY_MINUTES, then runs managedsoftwareupdate --auto.
# It's meant to spread the load on the munki server
# so all clients don't hit it simultaneously.
# If launchd had a way to randomize the StartInterval,
# we wouldn't need to do this.

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

if [ "$1" != "" ]; then
    MAX_DELAY_MINUTES="$1"
else
    MAX_DELAY_MINUTES=60
fi
MAX_DELAY_SECONDS=$((MAX_DELAY_MINUTES*60))
seconds=$(( (RANDOM%MAX_DELAY_SECONDS+1) ))
sleep $seconds
/usr/local/munki/supervisor --timeout 43200 -- \
    /usr/local/munki/managedsoftwareupdate --auto
